home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / HAMRADIO / LOGBOOK.ZIP / DXCCUPDT.PRG < prev    next >
Text File  |  1987-07-16  |  5KB  |  165 lines

  1. *DXCCUPDT AUTOMATICALLY UPDATES DXCC RECORDS FROM LOG DATABASE VER 860515
  2. * PATCHED 870717
  3. * DOES NOT RECOGNISE SEPARATE BANDS OR MODES
  4. * (c) COPYRIGHT JOE KASSER G3ZCZ 1986
  5. SELECT PRIMARY
  6. USE &logbook INDEX &logbook
  7.  
  8. SELECT SECONDARY
  9. USE &dxcc
  10.  
  11. DO WHILE .NOT. EOF
  12.    ERASE
  13.    ? px
  14.    IF dstate = 'Q'
  15.       ?? '  ',dcall,' ALREADY CONFIRMED IN DXCC RECORD'
  16.    ELSE
  17.       * NOT WORKED YET, SO TRY LOG FOR UPDATE'
  18.       STORE TRIM(px) TO prefix
  19.       SELECT PRIMARY
  20.       FIND &prefix
  21.       IF # = 0
  22.          * NO FIND, TRY ALTERNATE PREFIX
  23.          SELECT SECONDARY
  24.          IF $(px1,1,1) = ' '
  25.             * NO ALTERNATE PREFIX, GO TO NEXT PREFIX'
  26.          ELSE
  27.             STORE TRIM(px1) TO prefix
  28.             ERASE
  29.             ? px1
  30.             SELECT PRIMARY
  31.             FIND &prefix
  32.             IF # = 0
  33.                *NO FIND AGAIN, GO TO NEXT PREFIX  '
  34.             ELSE
  35.                * FOUND SOMETHING FOR PX1  '
  36.                STORE T TO qslflag
  37.                DO WHILE .NOT. EOF .AND. call = prefix .AND. qslflag
  38.                  ? call,date,time,band,qslsent,qslrx
  39.                   IF qslrx = 'R'
  40.                      STORE F TO qslflag
  41.                      *FOUND A QSL'
  42.                   ENDIF
  43.                   SKIP
  44.                ENDDO
  45.                SKIP -1
  46.                SELECT SECONDARY
  47.                REPLACE dcall WITH call
  48.                REPLACE ddate WITH date
  49.                REPLACE dtime WITH time
  50.                REPLACE dmode WITH mode
  51.                REPLACE dband WITH band
  52.                IF qslflag
  53.                   REPLACE dstate WITH 'W'
  54.                ELSE
  55.                   REPLACE dstate WITH 'Q'
  56.                ENDIF
  57.             ENDIF
  58.          ENDIF
  59.       ELSE
  60.          *FOUND SOMETHING FOR PX, see if its qsled'
  61.          STORE T TO qslflag
  62.          DO WHILE .NOT. EOF .AND. call = prefix .AND. QSLflag
  63.             ? call,date,time,band,qslsent,qslrx
  64.             IF qslrx = 'R'
  65.                STORE F TO qslflag
  66.                *FOUND A QSL'
  67.             ENDIF
  68.             SKIP
  69.          ENDDO
  70.          SKIP -1
  71.          IF qslflag
  72.             *its not qsled, only worked '
  73.             * TRY ALTERNATE PREFIX
  74.             SELECT SECONDARY
  75.             IF $(px1,1,1) = ' '
  76.                * NO ALTERNATE PREFIX, GO BACK TO FIRST PREFIX'
  77.                STORE TRIM(px) TO prefix
  78.                SELECT PRIMARY
  79.                GOTO TOP
  80.                * PICK FIRST ONE
  81.                FIND &prefix
  82.                SELECT SECONDARY
  83.                REPLACE dcall WITH call
  84.                REPLACE ddate WITH date
  85.                REPLACE dtime WITH time
  86.                REPLACE dmode WITH mode
  87.                REPLACE dband WITH band
  88.                REPLACE dstate WITH 'W'
  89.             ELSE
  90.                STORE TRIM(px1) TO prefix
  91.                ERASE
  92.                ? px1
  93.                SELECT PRIMARY
  94.                FIND &prefix
  95.                IF # = 0
  96.                   *NO FIND AGAIN, GO BACK TO FIRST PREFIX   '
  97.                   SELECT SECONDARY
  98.                   STORE TRIM(px) TO prefix
  99.                   SELECT PRIMARY
  100.                   FIND &prefix
  101.                   REPLACE dstate WITH 'W'
  102.                ELSE
  103.                   * FOUND SOMETHING FOR PX1 '
  104.                   STORE T TO qslflag
  105.                   DO WHILE .NOT. EOF .AND. call = prefix .AND. qslflag
  106.                   ? call,date,time,band,qslsent,qslrx
  107.                   IF qslrx = 'R'
  108.                         STORE F TO qslflag
  109.                         *FOUND A QSL
  110.                      ENDIF
  111.                      SKIP
  112.                   ENDDO
  113.                   SKIP -1
  114.                   SELECT SECONDARY
  115.                   IF qslflag
  116.                      REPLACE dstate WITH 'W'
  117.                   ELSE
  118.                      REPLACE dstate WITH 'Q'
  119.                   ENDIF
  120.                ENDIF
  121.                SELECT SECONDARY
  122.                REPLACE dcall WITH call
  123.                REPLACE ddate WITH date
  124.                REPLACE dtime WITH time
  125.                REPLACE dmode WITH mode
  126.                REPLACE dband WITH band
  127.             ENDIF
  128.          ELSE
  129.             * PX IS QSLED, UPDATE DATA
  130.             SELECT SECONDARY
  131.             REPLACE dstate WITH 'Q'
  132.             REPLACE dcall WITH call
  133.             REPLACE ddate WITH date
  134.             REPLACE dtime WITH time
  135.             REPLACE dmode WITH mode
  136.             REPLACE dband WITH band
  137.          ENDIF
  138.       ENDIF
  139.    ENDIF
  140.    SELECT SECONDARY
  141.    SKIP
  142. ENDDO
  143. SELECT SECONDARY
  144. USE
  145. SELECT PRIMARY
  146. USE
  147. RELEASE prefix,qslflag
  148. RETURN
  149. 
  150.          * NO FIND, TRY ALTERNATE PREFIX
  151.          SELECT SECONDARY
  152.          IF $(px1,1,1) = ' '
  153.             * NO ALTERNATE PREFIX, GO TO NEXT PREFIX'
  154.          ELSE
  155.             STORE TRIM(px1) TO prefix
  156.             ERASE
  157.             ? px1
  158.             SELECT PRIMARY
  159.             FIND &prefix
  160.             IF # = 0
  161.                *NO FIND AGAIN, GO TO NEXT PREFIX  '
  162.             ELSE
  163.                * FOUND SOMETHING FOR PX1  '
  164.                STORE T TO qslflag
  165.                DO WHILE .NOT. EO